import mitt from "mitt";

/**
 * 选择多选变更事件
 * @typedef {Object} SelectMultipleChangedEvent
 * @property {string} prop - 属性名
 * @property {boolean} multiple - 是否多选
 */

/**
 * 表单设计器字段删除事件
 * @typedef {Object} FormDesignerFieldDeleteEvent
 * @property {string} field - 字段名
 */

/**
 * BPMN元素变更事件
 * @typedef {Object} BpmnElementChanged
 * @property {import('bpmn-js/lib/model/Types').Element} element - BPMN元素
 */

/**
 * BPMN选择变更事件
 * @typedef {Object} BpmnSelectionChanged
 * @property {import('bpmn-js/lib/model/Types').Element} element - BPMN元素
 */

/**
 * 事件类型定义
 * @typedef {Object} Events
 * @property {SelectMultipleChangedEvent} selectMultipleChanged - 选择多选变更事件
 * @property {FormDesignerFieldDeleteEvent} removeFieldInDesigner - 表单设计器字段删除事件
 * @property {BpmnElementChanged} bpmnElementChanged - BPMN元素变更事件
 * @property {BpmnSelectionChanged} bpmnSelectionChanged - BPMN选择变更事件
 */

export default mitt() 